#ifndef POINTS
#define POINTS
#include <qgraphicsscene.h>
#include<qgraphicsitem.h>
#include<qgraphicsview.h>
#include<qevent.h>
#include<qgraphicssceneevent.h>
#include <qgraphicstransform.h>
#include<qtransform.h>
#include<math.h>
#include<qpainterpath.h>
#include"q_selected_edit_tool.h"
class TopLeftPoint:public QGraphicsEllipseItem
{
	
public:
	enum { Type = UserType + 1 };
	QSelectEditTool* tool;
	TopLeftPoint(qreal x,qreal y,QSelectEditTool* tool);
	
	void mousePressEvent(QGraphicsSceneMouseEvent* event);
	void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
	int	type() const;
};
class TopRightPoint:public QGraphicsEllipseItem
{
	
public:
	enum { Type = UserType + 2 };
	QSelectEditTool* tool;
	TopRightPoint(qreal x,qreal y,QSelectEditTool* tool);
	void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
	void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
	int	type() const;
};
class BottomLeftPoint:public QGraphicsEllipseItem
{
	
public:
	enum { Type = UserType + 3 };
	QSelectEditTool* tool;
	BottomLeftPoint(qreal x,qreal y,QSelectEditTool* tool);
	void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
	void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
	int	type() const;
};
class BottomRightPoint:public QGraphicsEllipseItem
{
	
public:
	enum { Type = UserType +4 };
	QSelectEditTool* tool;
	BottomRightPoint(qreal x,qreal y,QSelectEditTool* tool);
	//void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
	void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
	int	type() const;
};
class RotationCenterPoint:public QGraphicsEllipseItem
{
	
public:
	enum { Type = UserType + 5 };
	QSelectEditTool* tool;
	RotationCenterPoint(qreal x,qreal y,QSelectEditTool* tool);
	void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
	void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
	int	type() const;
};
class RotationControlPoint:public QGraphicsEllipseItem
{
	
public:
	enum { Type = UserType + 6 };
	QSelectEditTool* tool;
	RotationControlPoint(qreal x,qreal y,QSelectEditTool* tool);
	void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
	void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
	//void mousePressEvent(QGraphicsSceneMouseEvent* event);
	int	type() const;
};
class TopCenterPoint:public QGraphicsEllipseItem
{
	
public:
	enum { Type = UserType +7};
	QSelectEditTool* tool;
	TopCenterPoint(qreal x,qreal y,QSelectEditTool* tool);
	void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
	void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
	int	type() const;
};
class RightCenterPoint:public QGraphicsEllipseItem
{
	
public:
	enum { Type = UserType + 8};
	QSelectEditTool* tool;
	RightCenterPoint(qreal x,qreal y,QSelectEditTool* tool);
	void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
	void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
	int	type() const;
};
#endif